/**
 * Jest配置文件
 */
module.exports = {
  // 测试环境
  testEnvironment: 'jsdom',
  
  // 测试文件匹配模式
  testMatch: [
    '**/tests/**/*.test.js'
  ],
  
  // 覆盖率收集
  collectCoverage: true,
  collectCoverageFrom: [
    'src/**/*.js',
    '!src/examples/**',
    '!**/node_modules/**'
  ],
  
  // 模拟模块
  moduleNameMapper: {
    // 处理CSS和其他静态资源
    '\\.(css|less|scss|sass)$': '<rootDir>/tests/mocks/styleMock.js',
    '\\.(jpg|jpeg|png|gif|webp|svg)$': '<rootDir>/tests/mocks/fileMock.js'
  },
  
  // 设置测试超时时间（毫秒）
  testTimeout: 10000,
  
  // 在每个测试文件执行前运行的设置文件
  setupFiles: ['<rootDir>/tests/setup.js'],
  
  // 转换器
  transform: {
    '^.+\\.js$': 'babel-jest'
  },
  
  // 忽略的路径
  transformIgnorePatterns: [
    '/node_modules/'
  ],
  
  // 测试覆盖率报告目录
  coverageDirectory: '<rootDir>/coverage'
}; 